/**
 * @class кнопка - DIV
 * Если выделение схлопнуто и находится внутри div'a - он удаляется
 * Новые div'ы создаются только из несхлопнутого выделения
 *
 * @param  elRTE  rte   объект-редактор
 * @param  String name  название кнопки
 *
 * @author:    Dmitry Levashov (dio) dio@std42.ru
 * copyright: Studio 42, http://www.std42.ru
 **/
(function ($) {
    elRTE.prototype.ui.prototype.buttons.div = function (rte, name) {
        this.constructor.prototype.constructor.call(this, rte, name);

        this.command = function () {
            var n, nodes;
            this.rte.history.add();

            if (this.rte.selection.collapsed()) {
                n = this.rte.dom.selfOrParent(this.rte.selection.getNode(), /^DIV$/);
                if (n) {
                    $(n).replaceWith($(n).html());
                }
            } else {
                nodes = this.rte.selection.selected({wrap:'all', tag:'div'});
                nodes.length && this.rte.selection.select(nodes[0], nodes[nodes.length - 1]);
            }
            this.rte.ui.update(true);
        }

        this.update = function () {
            if (this.rte.selection.collapsed()) {
                if (this.rte.dom.selfOrParent(this.rte.selection.getNode(), /^DIV$/)) {
                    this.domElem.removeClass('disabled').addClass('active');
                } else {
                    this.domElem.addClass('disabled active');
                }
            } else {
                this.domElem.removeClass('disabled active');
            }
        }
    }
})(jQuery);
